package app.common.utils.cjt.ao;

import lombok.Data;
import lombok.NoArgsConstructor;


/**
 * 存货创建
 * @author feizns
 * @since 2023/3/31
 */
@NoArgsConstructor
@Data
public class InventoryCreateAo {

    /**
     * dto
     */
    private Dto dto;

    /**
     * Dto
     */
    @NoArgsConstructor
    @Data
    public static class Dto {
        /**
         * code
         */
        private String code;
        /**
         * name
         */
        private String name;
        /**
         * shorthand
         */
        private String shorthand;
        /**
         * specification
         */
        private String specification;
        /**
         * inventoryClass
         */
        private InventoryClass inventoryClass;
        /**
         * unit
         */
        private Unit unit;
        /**
         * productInfo
         */
        private ProductInfo productInfo;
        /**
         * disabled
         */
        private String disabled;
        /**
         * isSingleUnit
         */
        private String isSingleUnit;
        /**
         * unitType
         */
        private UnitType unitType;
        /**
         * valueType
         */
        private ValueType valueType;
        /**
         * unitBySale
         */
        private UnitBySale unitBySale;
        /**
         * unitByRetail
         */
        private UnitByRetail unitByRetail;
        /**
         * unitByPurchase
         */
        private UnitByPurchase unitByPurchase;
        /**
         * unitByStock
         */
        private UnitByStock unitByStock;
        /**
         * isPurchase
         */
        private String isPurchase;
        /**
         * isSale
         */
        private String isSale;
        /**
         * isMadeSelf
         */
        private String isMadeSelf;
        /**
         * isMaterial
         */
        private String isMaterial;
        /**
         * isSuite
         */
        private String isSuite;
        /**
         * isLaborCost
         */
        private String isLaborCost;
        /**
         * taxRate
         */
        private Object taxRate;
        /**
         * invSCost
         */
        private Integer invSCost;
        /**
         * latestCost
         */
        private Double latestCost;
        /**
         * avagCost
         */
        private Double avagCost;

        /**
         * InventoryClass
         */
        @NoArgsConstructor
        @Data
        public static class InventoryClass {
            /**
             * code
             */
            private String code;
            /**
             * name
             */
            private String name;
        }

        /**
         * Unit
         */
        @NoArgsConstructor
        @Data
        public static class Unit {
            /**
             * name
             */
            private String name;
        }

        /**
         * ProductInfo
         */
        @NoArgsConstructor
        @Data
        public static class ProductInfo {
            /**
             * code
             */
            private String code;
            /**
             * name
             */
            private String name;
        }

        /**
         * UnitType
         */
        @NoArgsConstructor
        @Data
        public static class UnitType {
            /**
             * code
             */
            private String code;
        }

        /**
         * ValueType
         */
        @NoArgsConstructor
        @Data
        public static class ValueType {
            /**
             * code
             */
            private String code;
        }

        /**
         * UnitBySale
         */
        @NoArgsConstructor
        @Data
        public static class UnitBySale {
            /**
             * code
             */
            private String code;
            /**
             * name
             */
            private String name;
        }

        /**
         * UnitByRetail
         */
        @NoArgsConstructor
        @Data
        public static class UnitByRetail {
            /**
             * code
             */
            private String code;
            /**
             * name
             */
            private String name;
        }

        /**
         * UnitByPurchase
         */
        @NoArgsConstructor
        @Data
        public static class UnitByPurchase {
            /**
             * code
             */
            private String code;
            /**
             * name
             */
            private String name;
        }

        /**
         * UnitByStock
         */
        @NoArgsConstructor
        @Data
        public static class UnitByStock {
            /**
             * code
             */
            private String code;
            /**
             * name
             */
            private String name;
        }
    }

}